package com.taotao.tools.codec;

import org.mindrot.jbcrypt.BCrypt;

/**
 * <p>
 *  密码加密
 * </p>
 *
 * @author youbeiwuhuan
 * @version 1.0.0
 * @date 2022/5/5 14:45
 */
public class Bcrypt {
    public static void main(String[] args) {
        String password = "123456";

        // 加密
        String encodedPassword = BCrypt.hashpw(password, BCrypt.gensalt(10));
        System.out.println(encodedPassword);
        System.out.println(encodedPassword.length());

        // 使用正确密码验证密码是否正确
        boolean flag = BCrypt.checkpw(password, encodedPassword);
        System.out.println(flag);

        // 使用错误密码验证密码是否正确
        flag = BCrypt.checkpw("111222", encodedPassword);
        System.out.println(flag);

        System.out.println("-------------------------------------------");

        /**
         *
         *
         * 密文含义
         * 示例密文：
         *
         * $2a$10$CV7iT/TpZVx23IdEvMHhleRSnIPPI2N/s..Cl9Bd50V2LFdff1woa
         *
         * $：分割符，无意义；
         * 2a：bcrypt加密版本号；
         * 10：cost的值（默认值）；
         * 之后的22位：salt值；
         * 之后：密码的密文
         *
         */
    }
}
